﻿/***********************************************
  [className] CPdfRptRestAiOperBase
  [func]      pdf报表AI检测
  [author]    WeiXiaoYu
  [date]      2025/02/06 13:00
  [log]       初次建立
[Modification Log]
Vers            By            Notes
************************************************/

#ifndef CPdfRptRestAiOperBase_H
#define CPdfRptRestAiOperBase_H

#include <QObject>
#include "CPdfRptTool.h"

class CAllPdfRptDataInfo;
struct SPdfExtraAiAlmInfo;

class CPdfRptRestAiOperBase  : public QObject
{
	Q_OBJECT

public:
	CPdfRptRestAiOperBase(CPdfRptTool *pPdfRptTool, QObject *parent = nullptr);
	~CPdfRptRestAiOperBase();

	/***************************************************************
	* @brief     函数功能:绘制其他AI检测综述表格
	* @input     dStartRow|绘制起始行
	* @input     dStartCol|绘制起始列
	* @input     dataInfo|报表数据集合
	* @input     painter|QPainter对象
	* @input     printer|QPrinter对象
	* @output    sErrMsg|错误描述
	* @return    bool |成功返回true，失败返回false
	* @note
	* @author    WeiXiaoYu
	* @time      2025-01-08 13:30
	* @Modification Log]
	 Vers            By            Notes
	**************************************************************/
	virtual bool drawRestAiOverviewForm(double &dStartRow, double &dStartCol, CAllPdfRptDataInfo &dataInfo, QPainter &painter, QPrinter &printer, QString &sErrMsg);

	/***************************************************************
	* @brief     函数功能:绘制其他AI检测所有报警详情
	* @input     dStartRow|绘制起始行
	* @input     dStartCol|绘制起始列
	* @input     dataInfo|报表数据集合
	* @input     painter|QPainter对象
	* @input     printer|QPrinter对象
	* @output    sErrMsg|错误描述
	* @return    bool |成功返回true，失败返回false
	* @note
	* @author    WeiXiaoYu
	* @time      2025-01-08 13:30
	* @Modification Log]
	 Vers            By            Notes
	**************************************************************/
	virtual bool drawRestAiAllAlmDes(double &dStartRow, double &dStartCol, CAllPdfRptDataInfo &dataInfo, QPainter &painter, QPrinter &printer, QString &sErrMsg);

	/***************************************************************
	* @brief     函数功能:绘制单个其他AI检测报警详情(不包含表头)
	* @input     dStartRow|绘制起始行
	* @input     dStartCol|绘制起始列
	* @input     nAlmIdex|报警序号
	* @input     sDetTypeName|检测类型名称
	* @input     sglAlmInfo|单个报警数据
	* @input     painter|QPainter对象
	* @input     printer|QPrinter对象
	* @output    sErrMsg|错误描述
	* @return    bool |成功返回true，失败返回false
	* @note
	* @author    WeiXiaoYu
	* @time      2025-01-08 13:30
	* @Modification Log]
	 Vers            By            Notes
	**************************************************************/
	virtual bool drawRestAiSingAlmDes(double &dStartRow, double &dStartCol, int nAlmIdex, QString sDetTypeName, SPdfExtraAiAlmInfo &sglAlmInfo, QPainter &painter, QPrinter &printer, QString &sErrMsg);

	/***************************************************************
	* @brief     函数功能:绘制其他AI检测报警详情的表头
	* @input     dStartRow|绘制起始行
	* @input     dStartCol|绘制起始列
	* @input     painter|QPainter对象
	* @input     printer|QPrinter对象
	* @output    sErrMsg|错误描述
	* @return    bool |成功返回true，失败返回false
	* @note
	* @author    WeiXiaoYu
	* @time      2025-02-19 13:30
	* @Modification Log]
	 Vers            By            Notes
	**************************************************************/
	virtual bool drawRestAiAlmDesHeader(double &dStartRow, double &dStartCol, QPainter &painter, QPrinter &printer, QString &sErrMsg);


private:
	CPdfRptTool *m_pPdfRptTool = nullptr;//工具类指针

};
#endif